package com.sbc.user.service;

import com.sbc.user.pojo.vo.UserInfoActualRespVo;
import com.sbc.user.pojo.vo.UserBasicInfoReqVo;
import com.sbc.user.pojo.vo.UserContactInfoReqVo;
import com.sbc.user.pojo.vo.UserInfoRespVo;

/**
 * @description: 用户信息接口
 * @author: songbaicheng
 * @create: 2024-04-12 20:49
 **/
public interface UserInfoService {

    /**
     * 根据用户名返回脱敏用户信息
     *
     * @param username 用户名
     * @return 用户信息对象
     */
    UserInfoRespVo queryUserInfoByUsername(String username);

    /**
     * 根据用户名返回用户信息
     *
     * @param username 用户名
     * @return 用户信息对象
     */
    UserInfoActualRespVo queryActualUserInfoByUsername(String username);

    /**
     * 根据用户 ID 返回用户信息
     *
     * @param userId 用户 ID
     * @return 用户信息对象
     */
    UserInfoRespVo queryUserInfoByUserId(String userId);

    /**
     * 更新基本用户信息
     *
     * @param username      用户名
     * @param userBasicInfo 用户基本信息
     */
    void updateUserBasicInfo(String username, UserBasicInfoReqVo userBasicInfo);

    /**
     * 更新用户联系信息
     *
     * @param username        用户名
     * @param userContactInfo 用户联系信息
     */
    void updateUserContactInfo(String username, UserContactInfoReqVo userContactInfo);

    /**
     * 根据证件类型和证件号查询注销次数
     *
     * @param idType 证件类型
     * @param idCard 证件号
     * @return 注销次数
     */
    Integer queryUserDeletionNum(Integer idType, String idCard);
}
